<?php

require 'config.php';
require CAMINHO_SERVIDOR . 'funcoes.php';
require 'dao/processoDAO.class.php';
$daoProcessar = new processoDAO();
if (isset($_GET["id_jogo"])) {
    //placar do jogo
    $placarJogo = $daoProcessar->getPlacarJogo($_GET["id_jogo"]);
    //REGRINHA
    if ($placarJogo["placar_time_A"] > $placarJogo["placar_time_B"]) {
        $resultado = 1; //time A ganhou
    } elseif ($placarJogo["placar_time_A"] < $placarJogo["placar_time_B"]) {
        $resultado = 2; //time B ganhou
    } else {
        $resultado = 3; //empate
    }

    $limite = LIMITE_PROCESSO_PONTUACAO;
    //funcoes::debuga($daoProcessar->getCountApostasSemProcessos($limite), $daoProcessar->getApostas($_GET["id_jogo"], $limite), $placarJogo);
    while ($daoProcessar->getCountApostasSemProcessos($limite) > 0):
        //lista de apostas do jogo
        $apostas = $daoProcessar->getApostas($_GET["id_jogo"], $limite);
        //$difPlacar = $placarJogo["diferenca_gols"];
        //$difAposta = getDiferencaDeGols($aps["placar_time_A"], $aps["placar_time_B"]);
        $ptsUser = 0;
        $ac = 0;
        $acg = 0;
        $acr = 0;
        foreach ($apostas as $i => $aps) {
            if ($aps["placar_time_A"] > $aps["placar_time_B"]) {
                $meuResultado = 1; //aposta time A vai ganhar
            } elseif ($aps["placar_time_A"] < $aps["placar_time_B"]) {
                $meuResultado = 2; //aposta time B vai ganhar
            } else {
                $meuResultado = 3; //aposta em empate
            }
            //se acertou placar
            if ($aps["placar_time_A"] === $placarJogo["placar_time_A"] && $aps["placar_time_B"] === $placarJogo["placar_time_B"]) {
                $ptsUser = ACERTOU_PLACAR_PTS;
                $ac = 1;
                //se não, se acertou quantidade de gols de um dos times
            } elseif ($aps["placar_time_A"] === $placarJogo["placar_time_A"] || $aps["placar_time_B"] === $placarJogo["placar_time_B"]) {
                $ptsUser = ACERTOU_QUANT_GOLS_PTS;
                $acg = 1;
            }
            //acertou resultado: Empate ou vitoria do time.
            if ($meuResultado === $resultado) {
                if ($ptsUser < ACERTOU_PLACAR_PTS) {
                    $ptsUser = $ptsUser + ACERTOU_RESULTADO_PTS;
                    $acr = 1;
                }
            }
            $apostas[$i]["pts"] = $ptsUser;
            $apostas[$i]["ac"] = $ac;
            $apostas[$i]["acg"] = $acg;
            $apostas[$i]["acr"] = $acr;
            $ptsUser = 0;
            $ac = 0;
            $acg = 0;
            $acr = 0;
        }
        foreach ($apostas as $i => $aps) {

            $daoProcessar->gravaPontuacao($aps["id_aposta"], $aps["id_usuario"], $aps["pts"], $aps["ac"], $aps["acg"], $aps["acr"], $_GET["id_jogo"]);
        }
    endwhile;
    $daoProcessar->finalizaProcesso($_GET["id_jogo"]);
    header('location:' . URL . "listaJogos.php?msg=1");
} else {
    header('location:' . URL . "listaJogos.php?msg=2");
}

function getDiferencaDeGols($aps_a = 0, $aps_b = 0) {
    if ($aps_a > $aps_b) {
        $dif = $aps_a - $aps_b;
    } elseif ($aps_a < $aps_b) {
        $dif = $aps_b - $aps_a;
    } else {
        $dif = 0;
    }
    return $dif;
}

$daoProcessar->fecharConexao();
?> 